package com.tju.shortlink.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tju.shortlink.admin.common.convention.result.Result;
import com.tju.shortlink.admin.dao.entity.GroupDo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tju.shortlink.admin.dto.req.ShortLinkGroupSortReqDTO;
import com.tju.shortlink.admin.dto.req.ShortLinkGroupUpdateReqDTO;
import com.tju.shortlink.admin.dto.resp.ShortLinkGroupRespDTO;
import com.tju.shortlink.admin.remote.dto.resp.ShortLinkPageRespDTO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author mxl
 * @since 2024-07-05
 */
public interface IGroupService extends IService<GroupDo> {

    /**
     * 保存短链接分组
     * @param groupName 分组名称
     */
    void saveGroup(String groupName);

    /**
     * 查询短链接分组集合
     * @return 分支全部短链接分组
     */
    List<ShortLinkGroupRespDTO> listGroup();

    /**
     * 更新短链接分组
     * @param requestParam gid 分组name
     */
    void updateGroup(ShortLinkGroupUpdateReqDTO requestParam);

    /**
     * 分组删除功能
     * @param gid 组id
     */
    void deleteGroup(String gid);

    /**
     * 短链接分组排序
     * @param requestParam gid 排序字段
     */
    void sortGroup(List<ShortLinkGroupSortReqDTO> requestParam);

    /**
     * 保存分组信息
     * @param username 用户名
     * @param groupName 分组名
     */
    void saveGroup(String username, String groupName);

}
